package com.good.domain.models;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;

@ApiModel("返回格式")
public class Result {

    @ApiModelProperty("错误代码")
    private ErrorCode errorCode;
    @ApiModelProperty("错误信息")
    private String msg;
    @ApiModelProperty("返回数据")
    private Object data;

    /**
     * 返回结果
     * @param errorCode 错误代码
     * @param msg   错误信息
     * @param data  返回数据
     */
    public  Result(ErrorCode errorCode, String msg, Object data) {
        this.errorCode = errorCode;
        this.msg = msg;
        this.data = data;
    }

    /**
     * 返回结果
     * @param errorCode  错误代码
     * @param msg   错误信息
     */
    public Result(ErrorCode errorCode, String msg) {
        this.errorCode = errorCode;
        this.msg = msg;
    }
//
//    /**
//     * 返回成功
//     * @return
//     */
//    public static Result Success() {
//        return new Result(ErrorCode.Success, "OK");
//    }
//
//    public static Result Success(Object data) {
//        return new Result(ErrorCode.Success, "OK", data);
//    }
//
//    public static Result Success(String msg, Object data) {
//        return new Result(ErrorCode.Success, msg, data);
//    }
//
//
//    public static Result Error401(String msg) {
//        return new Result(ErrorCode.Error401, msg, null);
//    }
//
//
//    public static Result Error500(String msg) {
//        return new Result(ErrorCode.Error500, msg, null);
//    }
//
//    public static Result Error(ErrorCode errorCode, String msg, Object data) {
//        return new Result(errorCode, msg, data);
//    }
//
//    public static Result Error(ErrorCode errorCode, String msg) {
//        return new Result(errorCode, msg);
//    }
//
//    public static Result Error(String msg) {
//        return new Result(ErrorCode.Error500, msg);
//    }
//
//    public static Result Error() {
//        return new Result(ErrorCode.Error500, "未知异常");
//    }
//
//
//
//    /**
//     * 没有数据错误
//     *
//     * @return
//     */
//    public static Result NoDataError() {
//        return new Result(ErrorCode.NoDataError, ErrorCode.NoDataError.getDescription());
//    }
//
//    /**
//     * 没有数据错误
//     *
//     * @return
//     */
//    public static Result NoDataError(String msg) {
//        return new Result(ErrorCode.NoDataError, msg);
//    }
//
//    /**
//     * 没有数据错误
//     *
//     * @return
//     */
//    public static Result NoParamError() {
//        return new Result(ErrorCode.NoParamError, ErrorCode.NoParamError.getDescription());
//    }
//
//    /**
//     * 没有数据错误
//     *
//     * @return
//     */
//    public static Result NoParamError(String msg) {
//        return new Result(ErrorCode.NoParamError, msg);
//    }
//
//    /**
//     * 请求错误
//     *
//     * @return
//     */
//    public static Result RequestError() {
//        return new Result(ErrorCode.RequestError, ErrorCode.RequestError.getDescription());
//    }
//
//    /**
//     * 请求错误
//     *
//     * @return
//     */
//    public static Result RequestError(String msg) {
//        return new Result(ErrorCode.RequestError, msg);
//    }
//
//    /**
//     * 权限不足
//     *
//     * @return
//     */
//    public static Result PermissionsError() {
//        return new Result(ErrorCode.PermissionError, ErrorCode.PermissionError.getDescription());
//    }
//
//    /**
//     * 权限不足
//     *
//     * @return
//     */
//    public static Result PermissionsError(String msg) {
//        return new Result(ErrorCode.PermissionError, msg);
//    }
//
//    /**
//     * 签名错误
//     *
//     * @return
//     */
//    public static Result SignError() {
//        return new Result(ErrorCode.SignError, ErrorCode.SignError.getDescription());
//    }
//
//
//    /**
//     * 权限不足
//     *
//     * @return
//     */
//    public static Result PermissionError() {
//        return new Result(ErrorCode.PermissionError, ErrorCode.PermissionError.getDescription());
//    }
//
//    /**
//     * 重复注册
//     *
//     * @return
//     */
//    public static Result DuplicateError() {
//        return new Result(ErrorCode.DuplicateError, ErrorCode.DuplicateError.getDescription());
//    }
//
//    public static Result Error402() {
//        return new Result(ErrorCode.Error402, ErrorCode.Error402.getDescription(), null);
//    }
//
//    public static Result TokenInvalidError() {
//        return new Result(ErrorCode.TokenInvalidError, ErrorCode.TokenInvalidError.getDescription(), null);
//    }
//    public static

    public int getErrorCode() {
        return errorCode.getCode();
    }

    public void setErrorCode(ErrorCode errorCode) {
        this.errorCode = errorCode;
    }

    public Object getData() {
        return data;
    }

    public void setData(Object data) {
        this.data = data;
    }

    public String getMsg() {
        return msg;
    }

    public void setMsg(String msg) {
        this.msg = msg;
    }
}
